Use case: USART TX in interrupt mode ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
#define DATA_TO_SEND_SIZE 256
uint8_t aTxBuffer[] = " **** USART_SlaveMode **** ";
USART_HandleTypeDef husart;
/* Ensure that all required peripherals
(USART, GPIO, NVIC,etc.) are configured properly
/*
...
*/
/* USART register Transmit complete user callback */
HAL_USART_RegisterCallback(&husart, HAL_USART_TX_CB_ID,
USART_TxCpltCallback);
/* Start a USART Process in interruption mode */
HAL_USART_Transmit_IT(&husart, aTxBuffer,
DATA_TO_SEND_SIZE)
|
#define DATA_TO_SEND_SIZE 256
uint8_t aTxBuffer[] = " **** USART_SlaveMode **** ";
hal_usart_handle_t husart;
/* Ensure that all required peripherals
(USART, GPIO, NVIC,etc.) are configured properly
/*
...
*/
/* USART register Transmit complete user callback */
HAL_USART_RegisterTxCpltCallback(&husart, USART_TxCpltCallback);
/* Start a USART Process in interruption mode */
HAL_USART_Transmit_IT(&husart, aTxBuffer,
DATA_TO_SEND_SIZE)
|
Key changes ¶
HAL2 provides a dedicated registration API for TX completion callbacks:
HAL_USART_RegisterTxCpltCallback().HAL2 uses byte-oriented transfer count fields (for example
tx_xfer_count).

